typedef union packed {
    bf16_e bf16;
    fp32_t fp32;
} bf16_fp32_u;

typedef bf16_fp32_u [`P_ARU*`N0-1:0] aru_reduce_dat_t;
typedef logic [`P_ARU*`N0-1:0] aru_reduce_msk_t;

// 打拍寄存器结构体
typedef struct packed {
    aru_reduce_dat_t dat;
    aru_reduce_msk_t msk;
    aru_sdb_t sdb;
} aru_reduce_pld_t;

interface aru_reduce_pld_if (
    input clk,
    input rst_n
);
    logic            vld;
    logic            rdy;
    aru_reduce_dat_t dat;
    aru_reduce_msk_t msk;
    aru_sdb_t        sdb;

    modport in(input vld, input dat, input sdb, input msk, output rdy);
    modport out(output vld, output dat, output sdb, output msk, input rdy);
endinterface
